#ifndef DS_NEWWORK_H_
#define DS_NEWWORK_H_
#include "layer.h"

typedef struct network
{
    int n;
    int index;
    int batch;
    size_t *seen;
    layer *layers;
    int workspace_size;
    float *workspace;
    int inputs;
    int truths;
    float *input;
    float *delta;
    float *truth;
    float *cost;
    int subdivisions;
    int train;
}network;

network *make_network(int n);
void forward_network(network *net);
float train_network_datum(network *net);
void free_network(network *net);

#endif  // DS_NEWWORK_H_